]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
shell-recorder: Disable unredirection while recording
authorAdel Gadllah <adel.gadllah@gmail.com>
Thu, 9 Oct 2014 12:42:06 +0000 (14:42 +0200)
committerAdel Gadllah <adel.gadllah@gmail.com>
Thu, 9 Oct 2014 12:52:25 +0000 (14:52 +0200)
This is required to be able to record windows that would
otherwise be unredirected.

https://bugzilla.gnome.org/show_bug.cgi?id=738226

src/shell-recorder.c

index abf403f839b922e2043befad7a66fa836dec84df..4690368ca040f8a42f83d3de5903fbe34d9ec112 100644 (file)
@@ -17,7 +17,9 @@
 #include <cogl/cogl.h>
 #include <meta/screen.h>
 #include <meta/meta-cursor-tracker.h>
+#include <meta/compositor-mutter.h>
 
+#include "shell-global.h"
 #include "shell-recorder-src.h"
 #include "shell-recorder.h"
 
@@ -1535,6 +1537,9 @@ shell_recorder_record (ShellRecorder  *recorder,
   recorder_update_pointer (recorder);
   recorder_add_update_pointer_timeout (recorder);
 
+  /* Disable unredirection while we are recoring */
+  meta_disable_unredirect_for_screen (shell_global_get_screen (shell_global_get ()));
+
   /* Set up repaint hook */
   recorder->repaint_hook_id = clutter_threads_add_repaint_func(recorder_repaint_hook, recorder->stage, NULL);
 
@@ -1583,6 +1588,9 @@ shell_recorder_close (ShellRecorder *recorder)
 
   recorder->state = RECORDER_STATE_CLOSED;
 
+  /* Reenable unredirection while we are recoring */
+  meta_enable_unredirect_for_screen (shell_global_get_screen (shell_global_get ()));
+
   /* Release the refcount we took when we started recording */
   g_object_unref (recorder);
 }